package com.wtsw.pulsosocial.model.list;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.SystemClock;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Chronometer;
import android.widget.ImageView;
import android.widget.TextView;

import com.facebook.widget.ProfilePictureView;
import com.wtsw.pulsosocial.R;
import com.wtsw.pulsosocial.controller.GestorEventos;
import com.wtsw.pulsosocial.model.structure.Evento;
import com.wtsw.pulsosocial.model.util.Tiempo.Estado_Tiempo_Evento;
import com.wtsw.pulsosocial.view.event.ShowEvento;

public class EventAdapter extends ArrayAdapter<Evento>{
	
	private Activity activity;
	private ImageView category_image;
	private ProfilePictureView profilePictureView;
	private TextView nombre_evento;
	private TextView category_name;
	private ImageView show_event;
	private TextView distancia;
	private Chronometer cronometro;
	private TextView time_txt;
	private TextView estado_evento;
	private static int item_event = R.layout.item_event;
	private static int event_name = R.id.event_name;
	private static LayoutInflater inflater=null;
	
	//public EventAdapter(Activity activity, int textViewResourceId,ArrayList<Evento> eventos) {
	public EventAdapter(Activity activity) {		 
		super(activity,item_event,event_name ,GestorEventos.getEventos());
		this.activity = activity;	        	    
		inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	}

	 @Override
	    public View getView(final int position, View convertView, ViewGroup parent) {
		 View vi=convertView;
	        if(convertView==null)
	            vi = inflater.inflate(item_event, null);
	        final Evento evento = (Evento) getItem(position);
	        profilePictureView = (ProfilePictureView) vi.findViewById(R.id.profilePicture);
	        nombre_evento = (TextView) vi.findViewById(R.id.event_name);
	        category_image = (ImageView) vi.findViewById(R.id.event_category_image);
	        category_name = (TextView) vi.findViewById(R.id.event_category);
	        show_event = (ImageView) vi.findViewById(R.id.show_event);
	        distancia = (TextView) vi.findViewById(R.id.distancia);
	        cronometro = (Chronometer) vi.findViewById(R.id.tiempo_restante);
	        time_txt = (TextView) vi.findViewById(R.id.time_txt);
	        estado_evento = (TextView) vi.findViewById(R.id.estado_evento);
	        
	        show_event.setOnClickListener(new View.OnClickListener(){
	            public void onClick(View v) {    		    	
    		    	Intent intent =new Intent(activity, ShowEvento.class);
    		    	intent.putExtra("EventID",String.valueOf(evento.getId()));
    			    activity.startActivity(intent);  
	            }
	        });
	        
	        profilePictureView.setProfileId(evento.getUsuario().getId());
	        category_image.setImageBitmap(evento.getSubCategoria().getIcono());
	        category_name.setText(evento.getSubCategoria().getNombre());
	        nombre_evento.setText(evento.getNombre());
	        distancia.setText(evento.getDistancia());
	        cronometro.setVisibility(Chronometer.VISIBLE);	
	        
	        estado_evento.setAlpha((float) 0.75);
	        estado_evento.setTextColor(activity.getApplication().getResources().getColor(R.color.white));
	        
//	        cronometro.setOnChronometerTickListener(new OnChronometerTickListener() {
//				
//				@Override
//				public void onChronometerTick(Chronometer chronometer) {
//					// TODO Auto-generated method stub
//					String tiempo_pasado = evento.getTiempo().tiempo_pasado_string();
//					String tiempo_cronometro = chronometer.getText().toString();
//					if (tiempo_cronometro.equals(tiempo_pasado)) {
//						cronometro.setVisibility(Chronometer.GONE);
//			        	time_txt.setText(evento.getTiempo().get_hora_inicial()+" ("+evento.getTiempo().duracion()+")");
//			        	estado_evento.setBackgroundColor(activity.getApplication().getResources().getColor(R.color.red_status));
//			        	estado_evento.setText("Acabado");
//					}
//				}
//			});	        	       
	        
	        if (evento.getTiempo().event_state()==Estado_Tiempo_Evento.DESARROLLO) {
	        	cronometro.setBase(SystemClock.elapsedRealtime() - (evento.getTiempo().tiempo_pasado()));
	        	cronometro.start();
	        	time_txt.setText("/"+evento.getTiempo().duracion());	        	
	        } else {
	        	cronometro.setVisibility(Chronometer.GONE);
	        	time_txt.setText(evento.getTiempo().get_hora_inicial()+" ("+evento.getTiempo().duracion()+")");
	        }	        	        	       

	        if (evento.getTiempo().event_state()==Estado_Tiempo_Evento.NO_INICIADO) {
	        	estado_evento.setBackgroundColor(activity.getApplication().getResources().getColor(R.color.blue_status));
	        	estado_evento.setText("No iniciado");
	        }
	        if (evento.getTiempo().event_state()==Estado_Tiempo_Evento.DESARROLLO) {
	        	estado_evento.setBackgroundColor(activity.getApplication().getResources().getColor(R.color.green_status));
	        	estado_evento.setText("En curso");
	        }
	        if (evento.getTiempo().event_state()==Estado_Tiempo_Evento.ACABO) {
	        	estado_evento.setBackgroundColor(activity.getApplication().getResources().getColor(R.color.red_status));
	        	estado_evento.setText("Acabado");
	        }
	        
	        return vi;
	 }
}
